package com.kasax.skin.support;

import android.app.Application;

import java.util.Observable;


/**
 * 皮肤管理器
 */
public class SkinManager extends Observable {
    private Application application;

    private static SkinManager instance;

    private SkinManager() {

    }

    private SkinManager(Application application) {
        this.application = application;
        //共享首选项 用于记录当前使用的皮肤
        SkinPreference.init(application);
        //资源管理类 用于从app/皮肤包 中加载资源
        SkinResource.init(application);
        /**
         * 提供了一个应用生命周期回调的注册方法，
         *          * 用来对应用的生命周期进行集中管理，
         *  这个接口叫registerActivityLifecycleCallbacks，可以通过它注册
         *          * 自己的ActivityLifeCycleCallback，每一个Activity的生命周期都会回调到这里的对应方法。
         */
        application.registerActivityLifecycleCallbacks(new SkinActivityLifeCallback());
        loadSkin(SkinPreference.getInstance().getSkin());
    }

    public static void init(Application application) {
        if (instance == null) {
            synchronized (SkinManager.class) {
                if (instance == null) {
                    instance = new SkinManager(application);
                }
            }
        }
    }


    public static SkinManager getInstance() {
        return instance;
    }


    public void loadSkin(String skinFilePath) {

    }
}
